package com.jwcao.common.cast.demo;

import com.jwcao.common.cast.annotation.CastField;
import com.jwcao.common.cast.annotation.CastIgnore;
import com.jwcao.common.cast.annotation.CastObject;
import com.jwcao.common.cast.annotation.CastToCallBack;
import com.jwcao.common.cast.demo.impl.AbstractA;
import com.jwcao.common.cast.demo.impl.AbstractB;
import com.jwcao.common.cast.demo.impl.BaseA;
import com.jwcao.common.cast.demo.impl.BaseB;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;

/**
 * name: B description: TODO
 *
 * @author caojingwei date: 2023/3/25 15:43
 */
//@Slf4j
@CastObject(A.class)
@Builder
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class B {

    private String id;
    private String name;
    private String value;
    private List<BItem1> list;
    @CastField("a1")
    private String b1;
    @CastField("aList")
    private List<BaseB> bList;
    @CastField("baseA")
    private BaseB baseB;
    private boolean aBoolean;
    @CastIgnore
    private String bGetter;
    private AbstractB abstractObject;

}
